home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 526-550 / disk_539 / pf / source / pf1.h < prev    next >
C/C++ Source or Header  |  1992-05-06  |  4KB  |  106 lines

  1. /*---------------------------------------------------------*
  2.  | File: PF.h - #include for PF.c (see there for comments) |
  3.  +---------------------------------------------------------+
  4.  | Author:  Maurizio Loreti, aka MLO or I3NOO.             |
  5.  | Address: University of Padova - Department of Physics   |
  6.  |          Via F. Marzolo, 8 - 35131 PADOVA - Italy       |
  7.  | Phone:   (39)(49) 844-313         FAX: (39)(49) 844-245 |
  8.  | E-Mail:  LORETI at IPDINFN (BITNET),  or VAXFPD::LORETI |
  9.  |         (DECnet). VAXFPD is DECnet node 38.257 or 39169 |
  10.  | Home: Via G. Donizetti 6 - 35010 CADONEGHE (PD) - Italy |
  11.  *---------------------------------------------------------*/
  12.  
  13. /**
  14.  | Other #include's
  15. **/
  16.  
  17. #include <stdio.h>
  18. #include <string.h>
  19. #include <stdlib.h>
  20. #include <ctype.h>
  21. #include "mlo.h"
  22.  
  23. /**
  24.  | Constants to be used in printer initialisation
  25. **/
  26.  
  27. #define OUTPUT_DEVICE   "PAR:"          /* Output device */
  28. #define PORTRAIT        0               /* Orientation */
  29. #define LANDSCAPE       1
  30. #define ROMAN           0               /* Style */
  31. #define ITALIC          1
  32. #define P10CPI          0               /* Pitch & Spacing */
  33. #define P12CPI          1
  34. #define P16_67CPI       2
  35. #define P20CPI          3
  36. #define P24CPI          4
  37. #define PROPORTIONAL    -1
  38. #define COURIER         3               /* Font */
  39. #define GOTHIC          6
  40. #define TIMES           4101
  41. #define DRAFT           1               /* Quality */
  42. #define LETTER          2
  43.  
  44. /**
  45.  | Other #define's
  46. **/
  47.  
  48. #define VERSION         1.15            /* Guess what is this ... */
  49. #define LAST_CHANGE     910609
  50.  
  51. #define LINE_LENGTH     256             /* Input line buffer length */
  52.  
  53. #define OUTPUT_LENGTH   80              /* Various parameters for the 2-page */
  54. #define SIDE_LENGTH     3               /*   mode: output text length, width */
  55. #define SEP_LENGTH      5               /*     of the  blank borders,  space */
  56. #define PAGE_LENGTH     55              /*       between pages on sheet, ... */
  57.  
  58. #define TOTAL_LENGTH    (OUTPUT_LENGTH + 2 * SIDE_LENGTH)
  59. #define BUFFER_SIZE     (OUTPUT_LENGTH * PAGE_LENGTH)
  60.  
  61. #define ESC             '\x1B'          /* Special characters */
  62. #define FORM_FEED       '\x0C'
  63. #define H_LINE          '\xC4'          /* Semigraphic characters (PC-8) */
  64. #define V_LINE          '\xB3'
  65. #define NE              '\xBF'
  66. #define SE              '\xD9'
  67. #define SW              '\xC0'
  68. #define NW              '\xDA'
  69.  
  70. #define UP              1               /* Internal flags */
  71. #define DOWN            2
  72.  
  73. #define SINGLE_PAGE     1
  74. #define LEFT_PAGE       2
  75. #define RIGHT_PAGE      3
  76.  
  77. /**
  78.  | Structures
  79. **/
  80.  
  81. typedef struct sPageBuffer {            /* Page buffer pointers (2-p mode) */
  82.   char *line[PAGE_LENGTH];
  83. } PageBuffer;
  84.  
  85. /**
  86.  | Global variables
  87. **/
  88.  
  89. BYTE Orientation        = PORTRAIT;     /* Print default:  Courier,  10 */
  90. BYTE Style              = ROMAN;        /*   cpi pitch, letter quality, */
  91. short Pitch             = P10CPI;       /*     portrait,  roman, 6 lpi, */
  92. short Font              = COURIER;      /*       12pt high characters.  */
  93. BYTE Height             = 12;
  94. BYTE Lpi                = 6;
  95. BYTE Quality            = LETTER;
  96. short PageMode          = SINGLE_PAGE;
  97. short nBlanks           = 0;            /* No leading blanks */
  98. short nTabs             = 8;            /* Tab stops every 8 characters */
  99.  
  100. FILE *fp;                               /* Current input file pointer */
  101. FILE *prt;                              /* Printer device */
  102. char inBuffer[LINE_LENGTH];             /* Input buffer, and      */
  103. char *Buffer = inBuffer;                /*   our pointer into it. */
  104. PageBuffer *pPB;                        /* Page buffer (2-page mode) */
  105. short ThisLine;                         /* Line in the page */
  106.